From ffcd2ce5a5ed5d36a6a58dc8e7db35ee91a4af8a Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Wed, 2 May 2012 23:10:16 +0200 Subject: [PATCH] tests: add more float->8bit tests --- tests/Makefile.am | 3 ++ tests/float-to-8bit.c | 97 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 tests/float-to-8bit.c diff --git a/tests/Makefile.am b/tests/Makefile.am index b48aee5..3d74227 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -11,6 +11,7 @@ TESTS = \ babl_class_name \ extract \ floatclamp \ + float-to-8bit \ types \ palette \ extract \ @@ -29,6 +30,8 @@ endif LDADD = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \ $(MATH_LIB) +EXTRA_DIST=common.inc + noinst_PROGRAMS = \ introspect \ babl_fish_path_fitness \ diff --git a/tests/float-to-8bit.c b/tests/float-to-8bit.c new file mode 100644 index 0000000..f415e96 --- /dev/null +++ b/tests/float-to-8bit.c @@ -0,0 +1,97 @@ +/* babl - dynamically extendable universal pixel conversion library. + * Copyright (C) 2005, Øyvind Kolås. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see + * . + */ + +#include "config.h" +#include +#include +#include +#include "babl.h" + +#include "common.inc" + + +int +main (int argc, + char **argv) +{ + int OK = 1; + babl_init (); + + { + float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}}; + unsigned char out[][4] = {{ 55, 0, 0, 255 }, {51,77,128,153}, {0,255,255,255}}; + + CHECK_CONV("float -> u8 1", unsigned char, + babl_format("R'G'B'A float"), + babl_format("R'G'B'A u8"), + in, out); + } + + { + float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}}; + unsigned char out[][4] = {{ 10, 0, 0, 255 }, {8,19,55,153}, {0,255,255,255}}; + + CHECK_CONV("float -> u8 2", unsigned char, + babl_format("R'G'B'A float"), + babl_format("RGBA u8"), + in, out); + } + + { + float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}}; + unsigned char out[][4] = {{ 55, 0, 0, 255 }, {51,77,128,153}, {0,255,255,255}}; + + CHECK_CONV("float -> u8 3", unsigned char, + babl_format("RGBA float"), + babl_format("RGBA u8"), + in, out); + } + + { + float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}}; + unsigned char out[][3] = {{128, 0, 0}, {124,149,188}, {0,255,255}}; + + CHECK_CONV("float -> u8 4", unsigned char, + babl_format("RGBA float"), + babl_format("R'G'B' u8"), + in, out); + } + + { + float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}}; + unsigned char out[][4] = {{128, 0, 0, 255 }, {156,188,235,153}, {0,156,213,255}}; + + CHECK_CONV("float -> u8 5", unsigned char, + babl_format("RaGaBaA float"), + babl_format("R'G'B'A u8"), + in, out); + } + + { + float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}}; + unsigned char out[][4] = {{55, 0, 0, 255 }, {85,128,212,153}, {0,255,255,255}}; + + CHECK_CONV("float -> u8 6", unsigned char, + babl_format("R'aG'aB'aA float"), + babl_format("R'G'B'A u8"), + in, out); + } + + babl_exit (); + return !OK; +} -- 2.30.2